package main

import "fmt"

func main() {
	var runnable func(int)     // ① 先声明
	runnable = func(num int) { // ② 再赋值，此时名字已可见
		if num > 0 {
			runnable(num - 1)
		}
		fmt.Println("defer in runnable", num)
	}
	runnable(5)
}
